//大数加法1.0
//思维局限性，只考虑到和实现了两个大数位数相等
//毕竟是自己编的，放这里做纪念
#include<stdio.h>
#include<string.h>

#define N 10
int main()
{
	char strInput1[N],strInput2[N];
	int  numInput1[N]={0};
	int  numInput2[N]={0};
	int  bigNum1[N]={0};
	int  bigNum2[N]={0};
	int  bigSum[N+1]={0};
	int  midNum[N]={0};
	int lengStr1,lengStr2,moveNum1,moveNum2; 
//
//对第一个大数进行处理 
//
	printf("请输入第一个较大整数：\n");
	scanf("%s", strInput1);
	lengStr1 = strlen(strInput1); //求字符串长度
	moveNum1 = N - lengStr1;//数组元素右对齐需要移动位数 
	printf("第一个较大整数是%d位数\n",lengStr1);
	for(int i=0;i<lengStr1;i++) 
	{   //字符数组转整形数组 
		numInput1[i]=strInput1[i]-48;
//		printf("%d",numInput1[i]);
		if(i==lengStr1-1)printf("\n");
	}
	for(int i=0;i<N;i++)
	{	//数组元素右对齐，前面补0 
		bigNum1[i+moveNum1]=numInput1[i];
     	printf("%d",bigNum1[i]);	
     	if(i==N-1)printf("\n");
	}		
//
//对第二个大数进行处理 
//
	printf("请输入第二个较大整数：\n");
	scanf("%s", strInput2);
	lengStr2 = strlen(strInput2); //求字符串长度
	moveNum2 = N - lengStr2;//数组元素右对齐需要移动位数 
	printf("第二个较大整数是%d位数\n",lengStr2);
	for(int i=0;i<lengStr2;i++) 
	{   //字符数组转整形数组 
		numInput2[i]=strInput2[i]-48;
//		printf("%d",numInput2[i]);
		if(i==lengStr2-1)printf("\n");
	}
	for(int i=0;i<N;i++)
	{	//数组元素右对齐，前面补0 
		bigNum2[i+moveNum2]=numInput2[i];
     	printf("%d",bigNum2[i]);	
     	if(i==N-1)printf("\n");
	}
//
//两个大数相加 
//
	for(int i=N-1;i>=0;i--)
	{
		bigSum[i]=bigSum[i]+(bigNum1[i]+bigNum2[i])%10;
		bigSum[i-1]=bigSum[i-1]+(bigNum1[i]+bigNum2[i])/10;
		
		
		
		
		
	}
	for(int i=0;i<N;i++)
	{	
     	printf("%d",bigSum[i]);	
     	if(i==N-1)printf("\n");
	}
}